/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.colegiatura.beans;

import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import org.cip.esymons.colegiatura.bc.PaisDelegate;
import org.cip.esymons.general.be.Pais;

/**
 *
 * @author ADMINISTRADOR
 */
public class paisController {

    private PaisDelegate delegado;
    private Pais pais,pais2;

    public paisController() {

        delegado = new PaisDelegate();
    }

    public Pais getPais2() {
        return pais2;
    }

    public void setPais2(Pais pais2) {
        this.pais2 = pais2;
    }

    public PaisDelegate getDelegado() {
        return delegado;
    }

    public void setDelegado(PaisDelegate delegado) {
        this.delegado = delegado;
    }

    public Pais getPais() {
        return pais;
    }

    public void setPais(Pais pais) {
        this.pais = pais;
    }

    public Pais buscaPorCodigo(Integer codigo){

        return delegado.find(codigo);
    }

    public List<Pais> getListaPais(){

        return delegado.findAll();
    }

    public String nuevo(){

        pais = new Pais();
        return "ir_a_nuevo";
    }

    public String grabar(){

        try{
            pais2 = new Pais();
            pais2 = delegado.buscaPaisXNombre(pais.getPaiDescripcion());
            if(pais2 == null){
                String bandera = "/banderas/"+pais.getPaiDescripcion().toLowerCase()+".gif";
                pais.setPaiBandera(bandera);
                delegado.create(pais);
                pais = new Pais();
                mostrarMensaje("INFO: ", "País registrado satisfactoriamente...", FacesMessage.SEVERITY_INFO);
            }else{
                pais = new Pais();
                mostrarMensaje("ADVERTENCIA: ", "El País se encuentra registrado", FacesMessage.SEVERITY_WARN);               
            }
            return null;

        }catch(Exception ex){
           mostrarMensaje("ADVERTENCIA: ", "El País se encuentra registrado", FacesMessage.SEVERITY_WARN);
           pais = new Pais();
           return null;
        }
    }

    public String editar(){

        delegado.edit(pais);
        pais = new Pais();
        mostrarMensaje("INFO: ", "País actualizado satisfactoriamente...", FacesMessage.SEVERITY_INFO);
        return "ir_a_listar";
    }

    public String remover(){

        delegado.remove(pais);
        pais = new Pais();
        mostrarMensaje("INFO: ", "El País fue removido satisfactoriamente...", FacesMessage.SEVERITY_INFO);
        return null;
    }
    
    public SelectItem[] getSelectListaItem(){

      try{
//        System.out.println("Ingreso 1");
        SelectItem[] selects = null;
        List<Pais> listaPais = delegado.findAll();
        selects = new SelectItem[listaPais.size()];
        int cont = 0;
        for(Pais pai : listaPais){

            SelectItem item = new SelectItem(pai, pai.getPaiDescripcion());
            selects[cont] = item;
            cont++;
        }
        return selects;
      }catch(Exception e){
            System.out.println("Ingreso Error");
            SelectItem[] selects = new SelectItem[1];
            SelectItem item = new SelectItem(null, "No existen paises");
            selects[0] = item;
            return selects;
      }

    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), e.getMessage());
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }

}
